1. Technical Field
The present invention relates generally to caches in computer processing systems and, in particular, to a method and system for caching customized information in a network-server system.
2. Background Description
Caching is commonly used to improve the performance of a computer system. By caching an object, the cost for fetching or creating the object is only incurred once. Subsequent requests for a cached object can be satisfied from the cache, a process which incurs significantly less overhead than recalculating the object or fetching the object from a remote location.
One of the key requirements for state-of-the-art Web sites is to provide pages which are customized and do not appear the same each time they are accessed. Consider the following two examples. In the first example, a commercial Web site often provides advertisements on its Web pages. The advertisements may need to change each time the page is accessed. In the second example, a Web site may need to provide customized information. For instance, a Web page may provide personalized information which is specific to the client requesting the Web page. The personal information may depend on the Internet Protocol (IP) address of the client (e.g. special Web pages at an IBM site for all clients from ibm.com, different Web pages depending upon the client""s country) or on cookies or other state information provided by the client.
Customized Web pages are becoming increasingly important as Web sites become more sophisticated. Accordingly, it would be desirable and highly advantageous to have a method for [. . . ].
The problems stated above, as well as other related problems of the prior art, are solved by the present invention, a method for caching customized information in a client server system.
According to a first aspect of the invention, there is provided a method for providing customized information in a computer processing system. The method includes the step of defining at least one rule for one of creating and retrieving at least one customized block of data. At least one customizable template is created which includes at least one reference to the at least one rule and at least one offset that specifies at least one position at which the at least one customized block is inserted into the at least one customizable template. The at least one customized block is inserted into the at least one customizable template at the at least one position specified by the at least one offset.
According to a second aspect of the invention, the method further includes the step of examining the at least one customizable template to identify at least one of the at least one offset and the at least one reference.
According to a third aspect of the invention, the computer processing system includes at least one client, at least one server, and at least one cache.
According to a fourth aspect of the invention, the method further includes the steps of receiving at least one request for information from the at least one client by the at least one cache, and determining whether the at least one request references the at least one customizable template.
According to a fifth aspect of the invention, the method further includes the step of pre-storing the at least one customized block at a location within the at least one cache prior to said receiving step, and wherein said defining step includes the step of specifying the location of the at least one customized block within the at least one rule.
According to a sixth aspect of the invention, the method further includes the step of pre-storing the at least one customized block at a location external to the at least one cache prior to said receiving step, and wherein said defining step includes the step of specifying the location of the at least one customized block within the at least one rule.
According to a seventh aspect of the invention, the external location is within a memory device of one of the at least one server and a server other than the at least one server.
According to an eighth aspect of the invention, the method further includes the step of retrieving the at least one customized block from a location specified by the at least one rule.
According to a ninth aspect of the invention, the method further includes the step of dynamically creating the at least one customized block, when the at least one request references the at least one customizable template.
According to a tenth aspect of the invention, the method further includes the step of dynamically creating the at least one customized block by invoking a function corresponding to an executable computer program, and wherein said defining step includes the step of specifying the function within the at least one rule.
According to an eleventh aspect of the invention, the at least one customized block is one of created and retrieved based upon the identity of the at least one client.
According to a twelfth aspect of the invention, the method further includes the step of determining whether to add data to the at least one cache for creating the at least one customized block, based upon an estimated overhead for creating the at least one customized block.
According to a thirteenth aspect of the invention, the method further includes the step of determining whether to delete data from the at least one cache for creating the at least one customized block, based upon an estimated overhead for creating the at least one customized block.
According to a fourteenth aspect of the invention, the at least one request includes at least two requests, and the method further includes the step of partitioning the at least two requests into at least two partitions based upon predefined criteria.
According to a fifteenth aspect of the invention, the predefined criteria is an identity of an individual initiating the request.
According to a sixteenth aspect of the invention, the at least one rule identifies a list of data for creating the at least one customized block, and the method includes the steps of determining whether the list comprises more than one item. A selection method is associated with at least one of the at least two partitions that selects at least one appropriate item from the list, when the list comprises more than one item.
According to a seventeenth aspect of the invention, the method further includes the step of populating the at least one cache with at least one of the at least one customized block and the at least one rule, at least one of on demand and automatically though an interface operatively coupled to a server program.
According to an eighteenth aspect of the invention, the method further includes the step of at least one of dynamically updating and changing the at least one rule through the interface.
According to a nineteenth aspect of the invention, there is provided a system for providing customized information in a client-server environment. The system includes at least one client and at least one server. A network is adapted to couple the at least one client to the at least one server. At least one cache is adapted to create the customized information by inserting at least one customized block into at least one customizable template when at least one request for information references the at least one customizable template. An interface is adapted to couple the at least one server to the at least one cache.